﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Resources;
using System.Linq;
using System.Web;
using DHQGHN.PM2.Models;


namespace DHQGHN.PM2.ViewModels
{
    public class BangKeViewModel
    {
       
        [Display(Name = "ID Hộ")]
        [StringLength(16)]
        public string HOUSEHOLD_ID { get; set; }

        [Display(Name = "ID Địa chỉ")]
        [StringLength(50)]
        public string ADDRESS_ID { get; set; }

        [Display(Name = "Mã hộ")]
        [StringLength(16, ErrorMessage = "Độ dài không vượt quá 16 ký tự")]
        public string HOUSEHOLD_CODE { get; set; }

        [Display(Name = "Số hộ")]
        [RegularExpression("([0-9]+)", ErrorMessage = "Yêu cầu nhập số")]
        public int? HOUSEHOLD_NUMBER { get; set; }

        [Required(ErrorMessage = "Bạn chưa nhập Tên chủ hộ")]
        [Display(Name = "Tên chủ hộ")]
        [StringLength(50, ErrorMessage = "Độ dài không vượt quá 50 ký tự")]
        [RegularExpression(@"[^<>]+", ErrorMessage = "Không hợp lệ.")]
        public string HOUSEHOLD_NAME { get; set; }

        [Required(ErrorMessage = "Bạn chưa nhập Mã địa bàn ĐT")]
        [Display(Name = "Mã địa bàn ĐT")]
        [StringLength(12, ErrorMessage = "Độ dài không vượt quá 12 ký tự")]
        public string AREA_ID { get; set; }

        [Display(Name = "Tên địa bàn")]
        public string AREA_NAME { get; set; }

        [Display(Name = "Số nhân khẩu")]
        [Range(1, 50, ErrorMessage = "Số nhân khẩu không vượt quá 50.")]
        [RegularExpression("([0-9]+)", ErrorMessage = "Yêu cầu nhập số")]
        public int? NUM_OF_HH_MEMBER { get; set; }

        [Display(Name = "SĐT chủ hộ")]
        [StringLength(14, ErrorMessage = "Độ dài không vượt quá 14 ký tự")]
        [RegularExpression("([0-9]+)", ErrorMessage = "Yêu cầu nhập số")]
        public string HH_HEAD_MOBILE { get; set; }

        [Display(Name = "Email chủ hộ")]
        [EmailAddress(ErrorMessage = "Email không hợp lệ")]
        [StringLength(100, ErrorMessage = "Độ dài không vượt quá 100 ký tự")]
        [RegularExpression(@"[^<>]+", ErrorMessage = "Không hợp lệ.")]
        public string HH_HEAD_EMAIL { get; set; }

        [Display(Name = "Chữ ký chủ hộ")]
        [RegularExpression(@"[^<>]+", ErrorMessage = "Không hợp lệ.")]
        public string HH_HEAD_SIGNATURE { get; set; }

        [Required(ErrorMessage = "Bạn chưa nhập Phương thức ĐT")]
        [Display(Name = "Phương thức ĐT")]
        [StringLength(12, ErrorMessage = "Độ dài không vượt quá 12 ký tự")]
        public string SURVEY_METHOD_ID { get; set; }

        public string SURVEY_METHOD_NAME { get; set; }

        public string ONLINE_SURVEY_STATUS { get; set; }

        [Display(Name = "Quốc gia")]
        [StringLength(12, ErrorMessage = "Độ dài không vượt quá 12 ký tự")]
        public string COUNTRY_ID { get; set; } //COUNTRY_ID bigint      

        [Display(Name = "Mã địa chỉ")]
        [StringLength(20, ErrorMessage = "Độ dài không vượt quá 20 ký tự.")]
        [RegularExpression(@"[^<>]+", ErrorMessage = "Không hợp lệ.")]
        public string CODE { get; set; } //CODE varchar(20)

        [Display(Name = "Địa chỉ chi tiết")]
        [StringLength(255, ErrorMessage = "Độ dài không vượt quá 255 ký tự.")]
        [RegularExpression(@"[^<>]+", ErrorMessage = "Không hợp lệ.")]
        public string ADDRESS_DETAILS { get; set; } //ADDRESS_DETAILS nvarchar(100)

        [Required(ErrorMessage = "Bạn chưa nhập Tên địa chỉ")]
        [Display(Name = "Tên địa chỉ")]
        [RegularExpression(@"[^<>]+", ErrorMessage = "Không hợp lệ.")]
        [StringLength(255, ErrorMessage = "Độ dài không vượt quá 255 ký tự.")]
        public string NAME { get; set; } //NAME nvarchar(50)
        
        [Display(Name = "Kinh độ")]
        [StringLength(20, ErrorMessage = "Độ dài không vượt quá 20 ký tự.")]
        [RegularExpression(@"[^<>]+", ErrorMessage = "Không hợp lệ.")]
        public string GPS_LONGITUDE { get; set; } //GPS_LONGITUDE varchar(20)

        [Display(Name = "Vĩ độ")]      
        [StringLength(20, ErrorMessage = "Độ dài không vượt quá 20 ký tự.")]
        [RegularExpression(@"[^<>]+", ErrorMessage = "Không hợp lệ.")]
        public string GPS_LATITUDE { get; set; } //GPS_LATITUDE varchar(20)

        [Display(Name = "Sai số")]
        [StringLength(20, ErrorMessage = "Độ dài không vượt quá 20 ký tự.")]
        [RegularExpression(@"[^<>]+", ErrorMessage = "Không hợp lệ.")]
        public string GPS_ACCURACY { get; set; } //GPS_ACCURACY nvarchar(100)

        [Display(Name = "Mô tả")]
        [StringLength(255, ErrorMessage = "Độ dài không vượt quá 255 ký tự.")]
        [RegularExpression(@"[^<>]+", ErrorMessage = "Không hợp lệ.")]
        public string DESCRIPTIONS { get; set; } //DESCRIPTTIONS nvarchar(200)

        [Display(Name = "ID HCMR")]
        [StringLength(50, ErrorMessage = "Độ dài không vượt quá 50 ký tự")]
        public string ADM_UNIT_EXT_ID { get; set; } //ADMINIS_UNIT_EXT_ID bigint

        [Display(Name = "Mã HCMR cấp cha")]
        [StringLength(50, ErrorMessage = "Độ dài không vượt quá 50 ký tự")]
        public string PARENT_ID { get; set; } //PARENT_ID bigint => 

        [StringLength(50, ErrorMessage = "Độ dài không vượt quá 50 ký tự")]
        public string PARENT_ID2 { get; set; } //PARENT_ID bigint => 

        [Display(Name = "Loại ĐVHC")]
        [StringLength(5, ErrorMessage = "Độ dài không vượt quá 5 ký tự")]
        public string ADM_UNIT_EXT_TYPE { get; set; } //ADMINISTRATIVE_UNIT_EXT_TYPE varchar(20) => 

        [Display(Name = "ĐVHC mở rộng")]
        [StringLength(255, ErrorMessage = "Độ dài không vượt quá 255 ký tự")]
        public string ADM_UNIT_EXT_NAME { get; set; } //NAME varchar(20) => 

        public DateTime? ENDDATE { get; set; }
    }
}